/*
 *  From: http://ecmanaut.blogspot.fi/2006/07/encoding-decoding-utf8-in-javascript.html
 */

/*===
97 98 99 1656 4660 -> 97 98 99 217 184 225 136 180 -> 97 98 99 1656 4660
0 -> 0 -> 0
1 -> 1 -> 1
2 -> 2 -> 2
3 -> 3 -> 3
4 -> 4 -> 4
5 -> 5 -> 5
6 -> 6 -> 6
7 -> 7 -> 7
8 -> 8 -> 8
9 -> 9 -> 9
10 -> 10 -> 10
11 -> 11 -> 11
12 -> 12 -> 12
13 -> 13 -> 13
14 -> 14 -> 14
15 -> 15 -> 15
16 -> 16 -> 16
17 -> 17 -> 17
18 -> 18 -> 18
19 -> 19 -> 19
20 -> 20 -> 20
21 -> 21 -> 21
22 -> 22 -> 22
23 -> 23 -> 23
24 -> 24 -> 24
25 -> 25 -> 25
26 -> 26 -> 26
27 -> 27 -> 27
28 -> 28 -> 28
29 -> 29 -> 29
30 -> 30 -> 30
31 -> 31 -> 31
32 -> 32 -> 32
33 -> 33 -> 33
34 -> 34 -> 34
35 -> 35 -> 35
36 -> 36 -> 36
37 -> 37 -> 37
38 -> 38 -> 38
39 -> 39 -> 39
40 -> 40 -> 40
41 -> 41 -> 41
42 -> 42 -> 42
43 -> 43 -> 43
44 -> 44 -> 44
45 -> 45 -> 45
46 -> 46 -> 46
47 -> 47 -> 47
48 -> 48 -> 48
49 -> 49 -> 49
50 -> 50 -> 50
51 -> 51 -> 51
52 -> 52 -> 52
53 -> 53 -> 53
54 -> 54 -> 54
55 -> 55 -> 55
56 -> 56 -> 56
57 -> 57 -> 57
58 -> 58 -> 58
59 -> 59 -> 59
60 -> 60 -> 60
61 -> 61 -> 61
62 -> 62 -> 62
63 -> 63 -> 63
64 -> 64 -> 64
65 -> 65 -> 65
66 -> 66 -> 66
67 -> 67 -> 67
68 -> 68 -> 68
69 -> 69 -> 69
70 -> 70 -> 70
71 -> 71 -> 71
72 -> 72 -> 72
73 -> 73 -> 73
74 -> 74 -> 74
75 -> 75 -> 75
76 -> 76 -> 76
77 -> 77 -> 77
78 -> 78 -> 78
79 -> 79 -> 79
80 -> 80 -> 80
81 -> 81 -> 81
82 -> 82 -> 82
83 -> 83 -> 83
84 -> 84 -> 84
85 -> 85 -> 85
86 -> 86 -> 86
87 -> 87 -> 87
88 -> 88 -> 88
89 -> 89 -> 89
90 -> 90 -> 90
91 -> 91 -> 91
92 -> 92 -> 92
93 -> 93 -> 93
94 -> 94 -> 94
95 -> 95 -> 95
96 -> 96 -> 96
97 -> 97 -> 97
98 -> 98 -> 98
99 -> 99 -> 99
100 -> 100 -> 100
101 -> 101 -> 101
102 -> 102 -> 102
103 -> 103 -> 103
104 -> 104 -> 104
105 -> 105 -> 105
106 -> 106 -> 106
107 -> 107 -> 107
108 -> 108 -> 108
109 -> 109 -> 109
110 -> 110 -> 110
111 -> 111 -> 111
112 -> 112 -> 112
113 -> 113 -> 113
114 -> 114 -> 114
115 -> 115 -> 115
116 -> 116 -> 116
117 -> 117 -> 117
118 -> 118 -> 118
119 -> 119 -> 119
120 -> 120 -> 120
121 -> 121 -> 121
122 -> 122 -> 122
123 -> 123 -> 123
124 -> 124 -> 124
125 -> 125 -> 125
126 -> 126 -> 126
127 -> 127 -> 127
128 -> 194 128 -> 128
129 -> 194 129 -> 129
130 -> 194 130 -> 130
131 -> 194 131 -> 131
132 -> 194 132 -> 132
133 -> 194 133 -> 133
134 -> 194 134 -> 134
135 -> 194 135 -> 135
136 -> 194 136 -> 136
137 -> 194 137 -> 137
138 -> 194 138 -> 138
139 -> 194 139 -> 139
140 -> 194 140 -> 140
141 -> 194 141 -> 141
142 -> 194 142 -> 142
143 -> 194 143 -> 143
144 -> 194 144 -> 144
145 -> 194 145 -> 145
146 -> 194 146 -> 146
147 -> 194 147 -> 147
148 -> 194 148 -> 148
149 -> 194 149 -> 149
150 -> 194 150 -> 150
151 -> 194 151 -> 151
152 -> 194 152 -> 152
153 -> 194 153 -> 153
154 -> 194 154 -> 154
155 -> 194 155 -> 155
156 -> 194 156 -> 156
157 -> 194 157 -> 157
158 -> 194 158 -> 158
159 -> 194 159 -> 159
160 -> 194 160 -> 160
161 -> 194 161 -> 161
162 -> 194 162 -> 162
163 -> 194 163 -> 163
164 -> 194 164 -> 164
165 -> 194 165 -> 165
166 -> 194 166 -> 166
167 -> 194 167 -> 167
168 -> 194 168 -> 168
169 -> 194 169 -> 169
170 -> 194 170 -> 170
171 -> 194 171 -> 171
172 -> 194 172 -> 172
173 -> 194 173 -> 173
174 -> 194 174 -> 174
175 -> 194 175 -> 175
176 -> 194 176 -> 176
177 -> 194 177 -> 177
178 -> 194 178 -> 178
179 -> 194 179 -> 179
180 -> 194 180 -> 180
181 -> 194 181 -> 181
182 -> 194 182 -> 182
183 -> 194 183 -> 183
184 -> 194 184 -> 184
185 -> 194 185 -> 185
186 -> 194 186 -> 186
187 -> 194 187 -> 187
188 -> 194 188 -> 188
189 -> 194 189 -> 189
190 -> 194 190 -> 190
191 -> 194 191 -> 191
192 -> 195 128 -> 192
193 -> 195 129 -> 193
194 -> 195 130 -> 194
195 -> 195 131 -> 195
196 -> 195 132 -> 196
197 -> 195 133 -> 197
198 -> 195 134 -> 198
199 -> 195 135 -> 199
200 -> 195 136 -> 200
201 -> 195 137 -> 201
202 -> 195 138 -> 202
203 -> 195 139 -> 203
204 -> 195 140 -> 204
205 -> 195 141 -> 205
206 -> 195 142 -> 206
207 -> 195 143 -> 207
208 -> 195 144 -> 208
209 -> 195 145 -> 209
210 -> 195 146 -> 210
211 -> 195 147 -> 211
212 -> 195 148 -> 212
213 -> 195 149 -> 213
214 -> 195 150 -> 214
215 -> 195 151 -> 215
216 -> 195 152 -> 216
217 -> 195 153 -> 217
218 -> 195 154 -> 218
219 -> 195 155 -> 219
220 -> 195 156 -> 220
221 -> 195 157 -> 221
222 -> 195 158 -> 222
223 -> 195 159 -> 223
224 -> 195 160 -> 224
225 -> 195 161 -> 225
226 -> 195 162 -> 226
227 -> 195 163 -> 227
228 -> 195 164 -> 228
229 -> 195 165 -> 229
230 -> 195 166 -> 230
231 -> 195 167 -> 231
232 -> 195 168 -> 232
233 -> 195 169 -> 233
234 -> 195 170 -> 234
235 -> 195 171 -> 235
236 -> 195 172 -> 236
237 -> 195 173 -> 237
238 -> 195 174 -> 238
239 -> 195 175 -> 239
240 -> 195 176 -> 240
241 -> 195 177 -> 241
242 -> 195 178 -> 242
243 -> 195 179 -> 243
244 -> 195 180 -> 244
245 -> 195 181 -> 245
246 -> 195 182 -> 246
247 -> 195 183 -> 247
248 -> 195 184 -> 248
249 -> 195 185 -> 249
250 -> 195 186 -> 250
251 -> 195 187 -> 251
252 -> 195 188 -> 252
253 -> 195 189 -> 253
254 -> 195 190 -> 254
255 -> 195 191 -> 255
FAIL 55296
FAIL 55297
FAIL 55298
FAIL 55299
FAIL 55300
FAIL 55301
FAIL 55302
FAIL 55303
FAIL 55304
FAIL 55305
FAIL 55306
FAIL 55307
FAIL 55308
FAIL 55309
FAIL 55310
FAIL 55311
FAIL 55312
FAIL 55313
FAIL 55314
FAIL 55315
FAIL 55316
FAIL 55317
FAIL 55318
FAIL 55319
FAIL 55320
FAIL 55321
FAIL 55322
FAIL 55323
FAIL 55324
FAIL 55325
FAIL 55326
FAIL 55327
FAIL 55328
FAIL 55329
FAIL 55330
FAIL 55331
FAIL 55332
FAIL 55333
FAIL 55334
FAIL 55335
FAIL 55336
FAIL 55337
FAIL 55338
FAIL 55339
FAIL 55340
FAIL 55341
FAIL 55342
FAIL 55343
FAIL 55344
FAIL 55345
FAIL 55346
FAIL 55347
FAIL 55348
FAIL 55349
FAIL 55350
FAIL 55351
FAIL 55352
FAIL 55353
FAIL 55354
FAIL 55355
FAIL 55356
FAIL 55357
FAIL 55358
FAIL 55359
FAIL 55360
FAIL 55361
FAIL 55362
FAIL 55363
FAIL 55364
FAIL 55365
FAIL 55366
FAIL 55367
FAIL 55368
FAIL 55369
FAIL 55370
FAIL 55371
FAIL 55372
FAIL 55373
FAIL 55374
FAIL 55375
FAIL 55376
FAIL 55377
FAIL 55378
FAIL 55379
FAIL 55380
FAIL 55381
FAIL 55382
FAIL 55383
FAIL 55384
FAIL 55385
FAIL 55386
FAIL 55387
FAIL 55388
FAIL 55389
FAIL 55390
FAIL 55391
FAIL 55392
FAIL 55393
FAIL 55394
FAIL 55395
FAIL 55396
FAIL 55397
FAIL 55398
FAIL 55399
FAIL 55400
FAIL 55401
FAIL 55402
FAIL 55403
FAIL 55404
FAIL 55405
FAIL 55406
FAIL 55407
FAIL 55408
FAIL 55409
FAIL 55410
FAIL 55411
FAIL 55412
FAIL 55413
FAIL 55414
FAIL 55415
FAIL 55416
FAIL 55417
FAIL 55418
FAIL 55419
FAIL 55420
FAIL 55421
FAIL 55422
FAIL 55423
FAIL 55424
FAIL 55425
FAIL 55426
FAIL 55427
FAIL 55428
FAIL 55429
FAIL 55430
FAIL 55431
FAIL 55432
FAIL 55433
FAIL 55434
FAIL 55435
FAIL 55436
FAIL 55437
FAIL 55438
FAIL 55439
FAIL 55440
FAIL 55441
FAIL 55442
FAIL 55443
FAIL 55444
FAIL 55445
FAIL 55446
FAIL 55447
FAIL 55448
FAIL 55449
FAIL 55450
FAIL 55451
FAIL 55452
FAIL 55453
FAIL 55454
FAIL 55455
FAIL 55456
FAIL 55457
FAIL 55458
FAIL 55459
FAIL 55460
FAIL 55461
FAIL 55462
FAIL 55463
FAIL 55464
FAIL 55465
FAIL 55466
FAIL 55467
FAIL 55468
FAIL 55469
FAIL 55470
FAIL 55471
FAIL 55472
FAIL 55473
FAIL 55474
FAIL 55475
FAIL 55476
FAIL 55477
FAIL 55478
FAIL 55479
FAIL 55480
FAIL 55481
FAIL 55482
FAIL 55483
FAIL 55484
FAIL 55485
FAIL 55486
FAIL 55487
FAIL 55488
FAIL 55489
FAIL 55490
FAIL 55491
FAIL 55492
FAIL 55493
FAIL 55494
FAIL 55495
FAIL 55496
FAIL 55497
FAIL 55498
FAIL 55499
FAIL 55500
FAIL 55501
FAIL 55502
FAIL 55503
FAIL 55504
FAIL 55505
FAIL 55506
FAIL 55507
FAIL 55508
FAIL 55509
FAIL 55510
FAIL 55511
FAIL 55512
FAIL 55513
FAIL 55514
FAIL 55515
FAIL 55516
FAIL 55517
FAIL 55518
FAIL 55519
FAIL 55520
FAIL 55521
FAIL 55522
FAIL 55523
FAIL 55524
FAIL 55525
FAIL 55526
FAIL 55527
FAIL 55528
FAIL 55529
FAIL 55530
FAIL 55531
FAIL 55532
FAIL 55533
FAIL 55534
FAIL 55535
FAIL 55536
FAIL 55537
FAIL 55538
FAIL 55539
FAIL 55540
FAIL 55541
FAIL 55542
FAIL 55543
FAIL 55544
FAIL 55545
FAIL 55546
FAIL 55547
FAIL 55548
FAIL 55549
FAIL 55550
FAIL 55551
FAIL 55552
FAIL 55553
FAIL 55554
FAIL 55555
FAIL 55556
FAIL 55557
FAIL 55558
FAIL 55559
FAIL 55560
FAIL 55561
FAIL 55562
FAIL 55563
FAIL 55564
FAIL 55565
FAIL 55566
FAIL 55567
FAIL 55568
FAIL 55569
FAIL 55570
FAIL 55571
FAIL 55572
FAIL 55573
FAIL 55574
FAIL 55575
FAIL 55576
FAIL 55577
FAIL 55578
FAIL 55579
FAIL 55580
FAIL 55581
FAIL 55582
FAIL 55583
FAIL 55584
FAIL 55585
FAIL 55586
FAIL 55587
FAIL 55588
FAIL 55589
FAIL 55590
FAIL 55591
FAIL 55592
FAIL 55593
FAIL 55594
FAIL 55595
FAIL 55596
FAIL 55597
FAIL 55598
FAIL 55599
FAIL 55600
FAIL 55601
FAIL 55602
FAIL 55603
FAIL 55604
FAIL 55605
FAIL 55606
FAIL 55607
FAIL 55608
FAIL 55609
FAIL 55610
FAIL 55611
FAIL 55612
FAIL 55613
FAIL 55614
FAIL 55615
FAIL 55616
FAIL 55617
FAIL 55618
FAIL 55619
FAIL 55620
FAIL 55621
FAIL 55622
FAIL 55623
FAIL 55624
FAIL 55625
FAIL 55626
FAIL 55627
FAIL 55628
FAIL 55629
FAIL 55630
FAIL 55631
FAIL 55632
FAIL 55633
FAIL 55634
FAIL 55635
FAIL 55636
FAIL 55637
FAIL 55638
FAIL 55639
FAIL 55640
FAIL 55641
FAIL 55642
FAIL 55643
FAIL 55644
FAIL 55645
FAIL 55646
FAIL 55647
FAIL 55648
FAIL 55649
FAIL 55650
FAIL 55651
FAIL 55652
FAIL 55653
FAIL 55654
FAIL 55655
FAIL 55656
FAIL 55657
FAIL 55658
FAIL 55659
FAIL 55660
FAIL 55661
FAIL 55662
FAIL 55663
FAIL 55664
FAIL 55665
FAIL 55666
FAIL 55667
FAIL 55668
FAIL 55669
FAIL 55670
FAIL 55671
FAIL 55672
FAIL 55673
FAIL 55674
FAIL 55675
FAIL 55676
FAIL 55677
FAIL 55678
FAIL 55679
FAIL 55680
FAIL 55681
FAIL 55682
FAIL 55683
FAIL 55684
FAIL 55685
FAIL 55686
FAIL 55687
FAIL 55688
FAIL 55689
FAIL 55690
FAIL 55691
FAIL 55692
FAIL 55693
FAIL 55694
FAIL 55695
FAIL 55696
FAIL 55697
FAIL 55698
FAIL 55699
FAIL 55700
FAIL 55701
FAIL 55702
FAIL 55703
FAIL 55704
FAIL 55705
FAIL 55706
FAIL 55707
FAIL 55708
FAIL 55709
FAIL 55710
FAIL 55711
FAIL 55712
FAIL 55713
FAIL 55714
FAIL 55715
FAIL 55716
FAIL 55717
FAIL 55718
FAIL 55719
FAIL 55720
FAIL 55721
FAIL 55722
FAIL 55723
FAIL 55724
FAIL 55725
FAIL 55726
FAIL 55727
FAIL 55728
FAIL 55729
FAIL 55730
FAIL 55731
FAIL 55732
FAIL 55733
FAIL 55734
FAIL 55735
FAIL 55736
FAIL 55737
FAIL 55738
FAIL 55739
FAIL 55740
FAIL 55741
FAIL 55742
FAIL 55743
FAIL 55744
FAIL 55745
FAIL 55746
FAIL 55747
FAIL 55748
FAIL 55749
FAIL 55750
FAIL 55751
FAIL 55752
FAIL 55753
FAIL 55754
FAIL 55755
FAIL 55756
FAIL 55757
FAIL 55758
FAIL 55759
FAIL 55760
FAIL 55761
FAIL 55762
FAIL 55763
FAIL 55764
FAIL 55765
FAIL 55766
FAIL 55767
FAIL 55768
FAIL 55769
FAIL 55770
FAIL 55771
FAIL 55772
FAIL 55773
FAIL 55774
FAIL 55775
FAIL 55776
FAIL 55777
FAIL 55778
FAIL 55779
FAIL 55780
FAIL 55781
FAIL 55782
FAIL 55783
FAIL 55784
FAIL 55785
FAIL 55786
FAIL 55787
FAIL 55788
FAIL 55789
FAIL 55790
FAIL 55791
FAIL 55792
FAIL 55793
FAIL 55794
FAIL 55795
FAIL 55796
FAIL 55797
FAIL 55798
FAIL 55799
FAIL 55800
FAIL 55801
FAIL 55802
FAIL 55803
FAIL 55804
FAIL 55805
FAIL 55806
FAIL 55807
FAIL 55808
FAIL 55809
FAIL 55810
FAIL 55811
FAIL 55812
FAIL 55813
FAIL 55814
FAIL 55815
FAIL 55816
FAIL 55817
FAIL 55818
FAIL 55819
FAIL 55820
FAIL 55821
FAIL 55822
FAIL 55823
FAIL 55824
FAIL 55825
FAIL 55826
FAIL 55827
FAIL 55828
FAIL 55829
FAIL 55830
FAIL 55831
FAIL 55832
FAIL 55833
FAIL 55834
FAIL 55835
FAIL 55836
FAIL 55837
FAIL 55838
FAIL 55839
FAIL 55840
FAIL 55841
FAIL 55842
FAIL 55843
FAIL 55844
FAIL 55845
FAIL 55846
FAIL 55847
FAIL 55848
FAIL 55849
FAIL 55850
FAIL 55851
FAIL 55852
FAIL 55853
FAIL 55854
FAIL 55855
FAIL 55856
FAIL 55857
FAIL 55858
FAIL 55859
FAIL 55860
FAIL 55861
FAIL 55862
FAIL 55863
FAIL 55864
FAIL 55865
FAIL 55866
FAIL 55867
FAIL 55868
FAIL 55869
FAIL 55870
FAIL 55871
FAIL 55872
FAIL 55873
FAIL 55874
FAIL 55875
FAIL 55876
FAIL 55877
FAIL 55878
FAIL 55879
FAIL 55880
FAIL 55881
FAIL 55882
FAIL 55883
FAIL 55884
FAIL 55885
FAIL 55886
FAIL 55887
FAIL 55888
FAIL 55889
FAIL 55890
FAIL 55891
FAIL 55892
FAIL 55893
FAIL 55894
FAIL 55895
FAIL 55896
FAIL 55897
FAIL 55898
FAIL 55899
FAIL 55900
FAIL 55901
FAIL 55902
FAIL 55903
FAIL 55904
FAIL 55905
FAIL 55906
FAIL 55907
FAIL 55908
FAIL 55909
FAIL 55910
FAIL 55911
FAIL 55912
FAIL 55913
FAIL 55914
FAIL 55915
FAIL 55916
FAIL 55917
FAIL 55918
FAIL 55919
FAIL 55920
FAIL 55921
FAIL 55922
FAIL 55923
FAIL 55924
FAIL 55925
FAIL 55926
FAIL 55927
FAIL 55928
FAIL 55929
FAIL 55930
FAIL 55931
FAIL 55932
FAIL 55933
FAIL 55934
FAIL 55935
FAIL 55936
FAIL 55937
FAIL 55938
FAIL 55939
FAIL 55940
FAIL 55941
FAIL 55942
FAIL 55943
FAIL 55944
FAIL 55945
FAIL 55946
FAIL 55947
FAIL 55948
FAIL 55949
FAIL 55950
FAIL 55951
FAIL 55952
FAIL 55953
FAIL 55954
FAIL 55955
FAIL 55956
FAIL 55957
FAIL 55958
FAIL 55959
FAIL 55960
FAIL 55961
FAIL 55962
FAIL 55963
FAIL 55964
FAIL 55965
FAIL 55966
FAIL 55967
FAIL 55968
FAIL 55969
FAIL 55970
FAIL 55971
FAIL 55972
FAIL 55973
FAIL 55974
FAIL 55975
FAIL 55976
FAIL 55977
FAIL 55978
FAIL 55979
FAIL 55980
FAIL 55981
FAIL 55982
FAIL 55983
FAIL 55984
FAIL 55985
FAIL 55986
FAIL 55987
FAIL 55988
FAIL 55989
FAIL 55990
FAIL 55991
FAIL 55992
FAIL 55993
FAIL 55994
FAIL 55995
FAIL 55996
FAIL 55997
FAIL 55998
FAIL 55999
FAIL 56000
FAIL 56001
FAIL 56002
FAIL 56003
FAIL 56004
FAIL 56005
FAIL 56006
FAIL 56007
FAIL 56008
FAIL 56009
FAIL 56010
FAIL 56011
FAIL 56012
FAIL 56013
FAIL 56014
FAIL 56015
FAIL 56016
FAIL 56017
FAIL 56018
FAIL 56019
FAIL 56020
FAIL 56021
FAIL 56022
FAIL 56023
FAIL 56024
FAIL 56025
FAIL 56026
FAIL 56027
FAIL 56028
FAIL 56029
FAIL 56030
FAIL 56031
FAIL 56032
FAIL 56033
FAIL 56034
FAIL 56035
FAIL 56036
FAIL 56037
FAIL 56038
FAIL 56039
FAIL 56040
FAIL 56041
FAIL 56042
FAIL 56043
FAIL 56044
FAIL 56045
FAIL 56046
FAIL 56047
FAIL 56048
FAIL 56049
FAIL 56050
FAIL 56051
FAIL 56052
FAIL 56053
FAIL 56054
FAIL 56055
FAIL 56056
FAIL 56057
FAIL 56058
FAIL 56059
FAIL 56060
FAIL 56061
FAIL 56062
FAIL 56063
FAIL 56064
FAIL 56065
FAIL 56066
FAIL 56067
FAIL 56068
FAIL 56069
FAIL 56070
FAIL 56071
FAIL 56072
FAIL 56073
FAIL 56074
FAIL 56075
FAIL 56076
FAIL 56077
FAIL 56078
FAIL 56079
FAIL 56080
FAIL 56081
FAIL 56082
FAIL 56083
FAIL 56084
FAIL 56085
FAIL 56086
FAIL 56087
FAIL 56088
FAIL 56089
FAIL 56090
FAIL 56091
FAIL 56092
FAIL 56093
FAIL 56094
FAIL 56095
FAIL 56096
FAIL 56097
FAIL 56098
FAIL 56099
FAIL 56100
FAIL 56101
FAIL 56102
FAIL 56103
FAIL 56104
FAIL 56105
FAIL 56106
FAIL 56107
FAIL 56108
FAIL 56109
FAIL 56110
FAIL 56111
FAIL 56112
FAIL 56113
FAIL 56114
FAIL 56115
FAIL 56116
FAIL 56117
FAIL 56118
FAIL 56119
FAIL 56120
FAIL 56121
FAIL 56122
FAIL 56123
FAIL 56124
FAIL 56125
FAIL 56126
FAIL 56127
FAIL 56128
FAIL 56129
FAIL 56130
FAIL 56131
FAIL 56132
FAIL 56133
FAIL 56134
FAIL 56135
FAIL 56136
FAIL 56137
FAIL 56138
FAIL 56139
FAIL 56140
FAIL 56141
FAIL 56142
FAIL 56143
FAIL 56144
FAIL 56145
FAIL 56146
FAIL 56147
FAIL 56148
FAIL 56149
FAIL 56150
FAIL 56151
FAIL 56152
FAIL 56153
FAIL 56154
FAIL 56155
FAIL 56156
FAIL 56157
FAIL 56158
FAIL 56159
FAIL 56160
FAIL 56161
FAIL 56162
FAIL 56163
FAIL 56164
FAIL 56165
FAIL 56166
FAIL 56167
FAIL 56168
FAIL 56169
FAIL 56170
FAIL 56171
FAIL 56172
FAIL 56173
FAIL 56174
FAIL 56175
FAIL 56176
FAIL 56177
FAIL 56178
FAIL 56179
FAIL 56180
FAIL 56181
FAIL 56182
FAIL 56183
FAIL 56184
FAIL 56185
FAIL 56186
FAIL 56187
FAIL 56188
FAIL 56189
FAIL 56190
FAIL 56191
FAIL 56192
FAIL 56193
FAIL 56194
FAIL 56195
FAIL 56196
FAIL 56197
FAIL 56198
FAIL 56199
FAIL 56200
FAIL 56201
FAIL 56202
FAIL 56203
FAIL 56204
FAIL 56205
FAIL 56206
FAIL 56207
FAIL 56208
FAIL 56209
FAIL 56210
FAIL 56211
FAIL 56212
FAIL 56213
FAIL 56214
FAIL 56215
FAIL 56216
FAIL 56217
FAIL 56218
FAIL 56219
FAIL 56220
FAIL 56221
FAIL 56222
FAIL 56223
FAIL 56224
FAIL 56225
FAIL 56226
FAIL 56227
FAIL 56228
FAIL 56229
FAIL 56230
FAIL 56231
FAIL 56232
FAIL 56233
FAIL 56234
FAIL 56235
FAIL 56236
FAIL 56237
FAIL 56238
FAIL 56239
FAIL 56240
FAIL 56241
FAIL 56242
FAIL 56243
FAIL 56244
FAIL 56245
FAIL 56246
FAIL 56247
FAIL 56248
FAIL 56249
FAIL 56250
FAIL 56251
FAIL 56252
FAIL 56253
FAIL 56254
FAIL 56255
FAIL 56256
FAIL 56257
FAIL 56258
FAIL 56259
FAIL 56260
FAIL 56261
FAIL 56262
FAIL 56263
FAIL 56264
FAIL 56265
FAIL 56266
FAIL 56267
FAIL 56268
FAIL 56269
FAIL 56270
FAIL 56271
FAIL 56272
FAIL 56273
FAIL 56274
FAIL 56275
FAIL 56276
FAIL 56277
FAIL 56278
FAIL 56279
FAIL 56280
FAIL 56281
FAIL 56282
FAIL 56283
FAIL 56284
FAIL 56285
FAIL 56286
FAIL 56287
FAIL 56288
FAIL 56289
FAIL 56290
FAIL 56291
FAIL 56292
FAIL 56293
FAIL 56294
FAIL 56295
FAIL 56296
FAIL 56297
FAIL 56298
FAIL 56299
FAIL 56300
FAIL 56301
FAIL 56302
FAIL 56303
FAIL 56304
FAIL 56305
FAIL 56306
FAIL 56307
FAIL 56308
FAIL 56309
FAIL 56310
FAIL 56311
FAIL 56312
FAIL 56313
FAIL 56314
FAIL 56315
FAIL 56316
FAIL 56317
FAIL 56318
FAIL 56319
FAIL 56320
FAIL 56321
FAIL 56322
FAIL 56323
FAIL 56324
FAIL 56325
FAIL 56326
FAIL 56327
FAIL 56328
FAIL 56329
FAIL 56330
FAIL 56331
FAIL 56332
FAIL 56333
FAIL 56334
FAIL 56335
FAIL 56336
FAIL 56337
FAIL 56338
FAIL 56339
FAIL 56340
FAIL 56341
FAIL 56342
FAIL 56343
FAIL 56344
FAIL 56345
FAIL 56346
FAIL 56347
FAIL 56348
FAIL 56349
FAIL 56350
FAIL 56351
FAIL 56352
FAIL 56353
FAIL 56354
FAIL 56355
FAIL 56356
FAIL 56357
FAIL 56358
FAIL 56359
FAIL 56360
FAIL 56361
FAIL 56362
FAIL 56363
FAIL 56364
FAIL 56365
FAIL 56366
FAIL 56367
FAIL 56368
FAIL 56369
FAIL 56370
FAIL 56371
FAIL 56372
FAIL 56373
FAIL 56374
FAIL 56375
FAIL 56376
FAIL 56377
FAIL 56378
FAIL 56379
FAIL 56380
FAIL 56381
FAIL 56382
FAIL 56383
FAIL 56384
FAIL 56385
FAIL 56386
FAIL 56387
FAIL 56388
FAIL 56389
FAIL 56390
FAIL 56391
FAIL 56392
FAIL 56393
FAIL 56394
FAIL 56395
FAIL 56396
FAIL 56397
FAIL 56398
FAIL 56399
FAIL 56400
FAIL 56401
FAIL 56402
FAIL 56403
FAIL 56404
FAIL 56405
FAIL 56406
FAIL 56407
FAIL 56408
FAIL 56409
FAIL 56410
FAIL 56411
FAIL 56412
FAIL 56413
FAIL 56414
FAIL 56415
FAIL 56416
FAIL 56417
FAIL 56418
FAIL 56419
FAIL 56420
FAIL 56421
FAIL 56422
FAIL 56423
FAIL 56424
FAIL 56425
FAIL 56426
FAIL 56427
FAIL 56428
FAIL 56429
FAIL 56430
FAIL 56431
FAIL 56432
FAIL 56433
FAIL 56434
FAIL 56435
FAIL 56436
FAIL 56437
FAIL 56438
FAIL 56439
FAIL 56440
FAIL 56441
FAIL 56442
FAIL 56443
FAIL 56444
FAIL 56445
FAIL 56446
FAIL 56447
FAIL 56448
FAIL 56449
FAIL 56450
FAIL 56451
FAIL 56452
FAIL 56453
FAIL 56454
FAIL 56455
FAIL 56456
FAIL 56457
FAIL 56458
FAIL 56459
FAIL 56460
FAIL 56461
FAIL 56462
FAIL 56463
FAIL 56464
FAIL 56465
FAIL 56466
FAIL 56467
FAIL 56468
FAIL 56469
FAIL 56470
FAIL 56471
FAIL 56472
FAIL 56473
FAIL 56474
FAIL 56475
FAIL 56476
FAIL 56477
FAIL 56478
FAIL 56479
FAIL 56480
FAIL 56481
FAIL 56482
FAIL 56483
FAIL 56484
FAIL 56485
FAIL 56486
FAIL 56487
FAIL 56488
FAIL 56489
FAIL 56490
FAIL 56491
FAIL 56492
FAIL 56493
FAIL 56494
FAIL 56495
FAIL 56496
FAIL 56497
FAIL 56498
FAIL 56499
FAIL 56500
FAIL 56501
FAIL 56502
FAIL 56503
FAIL 56504
FAIL 56505
FAIL 56506
FAIL 56507
FAIL 56508
FAIL 56509
FAIL 56510
FAIL 56511
FAIL 56512
FAIL 56513
FAIL 56514
FAIL 56515
FAIL 56516
FAIL 56517
FAIL 56518
FAIL 56519
FAIL 56520
FAIL 56521
FAIL 56522
FAIL 56523
FAIL 56524
FAIL 56525
FAIL 56526
FAIL 56527
FAIL 56528
FAIL 56529
FAIL 56530
FAIL 56531
FAIL 56532
FAIL 56533
FAIL 56534
FAIL 56535
FAIL 56536
FAIL 56537
FAIL 56538
FAIL 56539
FAIL 56540
FAIL 56541
FAIL 56542
FAIL 56543
FAIL 56544
FAIL 56545
FAIL 56546
FAIL 56547
FAIL 56548
FAIL 56549
FAIL 56550
FAIL 56551
FAIL 56552
FAIL 56553
FAIL 56554
FAIL 56555
FAIL 56556
FAIL 56557
FAIL 56558
FAIL 56559
FAIL 56560
FAIL 56561
FAIL 56562
FAIL 56563
FAIL 56564
FAIL 56565
FAIL 56566
FAIL 56567
FAIL 56568
FAIL 56569
FAIL 56570
FAIL 56571
FAIL 56572
FAIL 56573
FAIL 56574
FAIL 56575
FAIL 56576
FAIL 56577
FAIL 56578
FAIL 56579
FAIL 56580
FAIL 56581
FAIL 56582
FAIL 56583
FAIL 56584
FAIL 56585
FAIL 56586
FAIL 56587
FAIL 56588
FAIL 56589
FAIL 56590
FAIL 56591
FAIL 56592
FAIL 56593
FAIL 56594
FAIL 56595
FAIL 56596
FAIL 56597
FAIL 56598
FAIL 56599
FAIL 56600
FAIL 56601
FAIL 56602
FAIL 56603
FAIL 56604
FAIL 56605
FAIL 56606
FAIL 56607
FAIL 56608
FAIL 56609
FAIL 56610
FAIL 56611
FAIL 56612
FAIL 56613
FAIL 56614
FAIL 56615
FAIL 56616
FAIL 56617
FAIL 56618
FAIL 56619
FAIL 56620
FAIL 56621
FAIL 56622
FAIL 56623
FAIL 56624
FAIL 56625
FAIL 56626
FAIL 56627
FAIL 56628
FAIL 56629
FAIL 56630
FAIL 56631
FAIL 56632
FAIL 56633
FAIL 56634
FAIL 56635
FAIL 56636
FAIL 56637
FAIL 56638
FAIL 56639
FAIL 56640
FAIL 56641
FAIL 56642
FAIL 56643
FAIL 56644
FAIL 56645
FAIL 56646
FAIL 56647
FAIL 56648
FAIL 56649
FAIL 56650
FAIL 56651
FAIL 56652
FAIL 56653
FAIL 56654
FAIL 56655
FAIL 56656
FAIL 56657
FAIL 56658
FAIL 56659
FAIL 56660
FAIL 56661
FAIL 56662
FAIL 56663
FAIL 56664
FAIL 56665
FAIL 56666
FAIL 56667
FAIL 56668
FAIL 56669
FAIL 56670
FAIL 56671
FAIL 56672
FAIL 56673
FAIL 56674
FAIL 56675
FAIL 56676
FAIL 56677
FAIL 56678
FAIL 56679
FAIL 56680
FAIL 56681
FAIL 56682
FAIL 56683
FAIL 56684
FAIL 56685
FAIL 56686
FAIL 56687
FAIL 56688
FAIL 56689
FAIL 56690
FAIL 56691
FAIL 56692
FAIL 56693
FAIL 56694
FAIL 56695
FAIL 56696
FAIL 56697
FAIL 56698
FAIL 56699
FAIL 56700
FAIL 56701
FAIL 56702
FAIL 56703
FAIL 56704
FAIL 56705
FAIL 56706
FAIL 56707
FAIL 56708
FAIL 56709
FAIL 56710
FAIL 56711
FAIL 56712
FAIL 56713
FAIL 56714
FAIL 56715
FAIL 56716
FAIL 56717
FAIL 56718
FAIL 56719
FAIL 56720
FAIL 56721
FAIL 56722
FAIL 56723
FAIL 56724
FAIL 56725
FAIL 56726
FAIL 56727
FAIL 56728
FAIL 56729
FAIL 56730
FAIL 56731
FAIL 56732
FAIL 56733
FAIL 56734
FAIL 56735
FAIL 56736
FAIL 56737
FAIL 56738
FAIL 56739
FAIL 56740
FAIL 56741
FAIL 56742
FAIL 56743
FAIL 56744
FAIL 56745
FAIL 56746
FAIL 56747
FAIL 56748
FAIL 56749
FAIL 56750
FAIL 56751
FAIL 56752
FAIL 56753
FAIL 56754
FAIL 56755
FAIL 56756
FAIL 56757
FAIL 56758
FAIL 56759
FAIL 56760
FAIL 56761
FAIL 56762
FAIL 56763
FAIL 56764
FAIL 56765
FAIL 56766
FAIL 56767
FAIL 56768
FAIL 56769
FAIL 56770
FAIL 56771
FAIL 56772
FAIL 56773
FAIL 56774
FAIL 56775
FAIL 56776
FAIL 56777
FAIL 56778
FAIL 56779
FAIL 56780
FAIL 56781
FAIL 56782
FAIL 56783
FAIL 56784
FAIL 56785
FAIL 56786
FAIL 56787
FAIL 56788
FAIL 56789
FAIL 56790
FAIL 56791
FAIL 56792
FAIL 56793
FAIL 56794
FAIL 56795
FAIL 56796
FAIL 56797
FAIL 56798
FAIL 56799
FAIL 56800
FAIL 56801
FAIL 56802
FAIL 56803
FAIL 56804
FAIL 56805
FAIL 56806
FAIL 56807
FAIL 56808
FAIL 56809
FAIL 56810
FAIL 56811
FAIL 56812
FAIL 56813
FAIL 56814
FAIL 56815
FAIL 56816
FAIL 56817
FAIL 56818
FAIL 56819
FAIL 56820
FAIL 56821
FAIL 56822
FAIL 56823
FAIL 56824
FAIL 56825
FAIL 56826
FAIL 56827
FAIL 56828
FAIL 56829
FAIL 56830
FAIL 56831
FAIL 56832
FAIL 56833
FAIL 56834
FAIL 56835
FAIL 56836
FAIL 56837
FAIL 56838
FAIL 56839
FAIL 56840
FAIL 56841
FAIL 56842
FAIL 56843
FAIL 56844
FAIL 56845
FAIL 56846
FAIL 56847
FAIL 56848
FAIL 56849
FAIL 56850
FAIL 56851
FAIL 56852
FAIL 56853
FAIL 56854
FAIL 56855
FAIL 56856
FAIL 56857
FAIL 56858
FAIL 56859
FAIL 56860
FAIL 56861
FAIL 56862
FAIL 56863
FAIL 56864
FAIL 56865
FAIL 56866
FAIL 56867
FAIL 56868
FAIL 56869
FAIL 56870
FAIL 56871
FAIL 56872
FAIL 56873
FAIL 56874
FAIL 56875
FAIL 56876
FAIL 56877
FAIL 56878
FAIL 56879
FAIL 56880
FAIL 56881
FAIL 56882
FAIL 56883
FAIL 56884
FAIL 56885
FAIL 56886
FAIL 56887
FAIL 56888
FAIL 56889
FAIL 56890
FAIL 56891
FAIL 56892
FAIL 56893
FAIL 56894
FAIL 56895
FAIL 56896
FAIL 56897
FAIL 56898
FAIL 56899
FAIL 56900
FAIL 56901
FAIL 56902
FAIL 56903
FAIL 56904
FAIL 56905
FAIL 56906
FAIL 56907
FAIL 56908
FAIL 56909
FAIL 56910
FAIL 56911
FAIL 56912
FAIL 56913
FAIL 56914
FAIL 56915
FAIL 56916
FAIL 56917
FAIL 56918
FAIL 56919
FAIL 56920
FAIL 56921
FAIL 56922
FAIL 56923
FAIL 56924
FAIL 56925
FAIL 56926
FAIL 56927
FAIL 56928
FAIL 56929
FAIL 56930
FAIL 56931
FAIL 56932
FAIL 56933
FAIL 56934
FAIL 56935
FAIL 56936
FAIL 56937
FAIL 56938
FAIL 56939
FAIL 56940
FAIL 56941
FAIL 56942
FAIL 56943
FAIL 56944
FAIL 56945
FAIL 56946
FAIL 56947
FAIL 56948
FAIL 56949
FAIL 56950
FAIL 56951
FAIL 56952
FAIL 56953
FAIL 56954
FAIL 56955
FAIL 56956
FAIL 56957
FAIL 56958
FAIL 56959
FAIL 56960
FAIL 56961
FAIL 56962
FAIL 56963
FAIL 56964
FAIL 56965
FAIL 56966
FAIL 56967
FAIL 56968
FAIL 56969
FAIL 56970
FAIL 56971
FAIL 56972
FAIL 56973
FAIL 56974
FAIL 56975
FAIL 56976
FAIL 56977
FAIL 56978
FAIL 56979
FAIL 56980
FAIL 56981
FAIL 56982
FAIL 56983
FAIL 56984
FAIL 56985
FAIL 56986
FAIL 56987
FAIL 56988
FAIL 56989
FAIL 56990
FAIL 56991
FAIL 56992
FAIL 56993
FAIL 56994
FAIL 56995
FAIL 56996
FAIL 56997
FAIL 56998
FAIL 56999
FAIL 57000
FAIL 57001
FAIL 57002
FAIL 57003
FAIL 57004
FAIL 57005
FAIL 57006
FAIL 57007
FAIL 57008
FAIL 57009
FAIL 57010
FAIL 57011
FAIL 57012
FAIL 57013
FAIL 57014
FAIL 57015
FAIL 57016
FAIL 57017
FAIL 57018
FAIL 57019
FAIL 57020
FAIL 57021
FAIL 57022
FAIL 57023
FAIL 57024
FAIL 57025
FAIL 57026
FAIL 57027
FAIL 57028
FAIL 57029
FAIL 57030
FAIL 57031
FAIL 57032
FAIL 57033
FAIL 57034
FAIL 57035
FAIL 57036
FAIL 57037
FAIL 57038
FAIL 57039
FAIL 57040
FAIL 57041
FAIL 57042
FAIL 57043
FAIL 57044
FAIL 57045
FAIL 57046
FAIL 57047
FAIL 57048
FAIL 57049
FAIL 57050
FAIL 57051
FAIL 57052
FAIL 57053
FAIL 57054
FAIL 57055
FAIL 57056
FAIL 57057
FAIL 57058
FAIL 57059
FAIL 57060
FAIL 57061
FAIL 57062
FAIL 57063
FAIL 57064
FAIL 57065
FAIL 57066
FAIL 57067
FAIL 57068
FAIL 57069
FAIL 57070
FAIL 57071
FAIL 57072
FAIL 57073
FAIL 57074
FAIL 57075
FAIL 57076
FAIL 57077
FAIL 57078
FAIL 57079
FAIL 57080
FAIL 57081
FAIL 57082
FAIL 57083
FAIL 57084
FAIL 57085
FAIL 57086
FAIL 57087
FAIL 57088
FAIL 57089
FAIL 57090
FAIL 57091
FAIL 57092
FAIL 57093
FAIL 57094
FAIL 57095
FAIL 57096
FAIL 57097
FAIL 57098
FAIL 57099
FAIL 57100
FAIL 57101
FAIL 57102
FAIL 57103
FAIL 57104
FAIL 57105
FAIL 57106
FAIL 57107
FAIL 57108
FAIL 57109
FAIL 57110
FAIL 57111
FAIL 57112
FAIL 57113
FAIL 57114
FAIL 57115
FAIL 57116
FAIL 57117
FAIL 57118
FAIL 57119
FAIL 57120
FAIL 57121
FAIL 57122
FAIL 57123
FAIL 57124
FAIL 57125
FAIL 57126
FAIL 57127
FAIL 57128
FAIL 57129
FAIL 57130
FAIL 57131
FAIL 57132
FAIL 57133
FAIL 57134
FAIL 57135
FAIL 57136
FAIL 57137
FAIL 57138
FAIL 57139
FAIL 57140
FAIL 57141
FAIL 57142
FAIL 57143
FAIL 57144
FAIL 57145
FAIL 57146
FAIL 57147
FAIL 57148
FAIL 57149
FAIL 57150
FAIL 57151
FAIL 57152
FAIL 57153
FAIL 57154
FAIL 57155
FAIL 57156
FAIL 57157
FAIL 57158
FAIL 57159
FAIL 57160
FAIL 57161
FAIL 57162
FAIL 57163
FAIL 57164
FAIL 57165
FAIL 57166
FAIL 57167
FAIL 57168
FAIL 57169
FAIL 57170
FAIL 57171
FAIL 57172
FAIL 57173
FAIL 57174
FAIL 57175
FAIL 57176
FAIL 57177
FAIL 57178
FAIL 57179
FAIL 57180
FAIL 57181
FAIL 57182
FAIL 57183
FAIL 57184
FAIL 57185
FAIL 57186
FAIL 57187
FAIL 57188
FAIL 57189
FAIL 57190
FAIL 57191
FAIL 57192
FAIL 57193
FAIL 57194
FAIL 57195
FAIL 57196
FAIL 57197
FAIL 57198
FAIL 57199
FAIL 57200
FAIL 57201
FAIL 57202
FAIL 57203
FAIL 57204
FAIL 57205
FAIL 57206
FAIL 57207
FAIL 57208
FAIL 57209
FAIL 57210
FAIL 57211
FAIL 57212
FAIL 57213
FAIL 57214
FAIL 57215
FAIL 57216
FAIL 57217
FAIL 57218
FAIL 57219
FAIL 57220
FAIL 57221
FAIL 57222
FAIL 57223
FAIL 57224
FAIL 57225
FAIL 57226
FAIL 57227
FAIL 57228
FAIL 57229
FAIL 57230
FAIL 57231
FAIL 57232
FAIL 57233
FAIL 57234
FAIL 57235
FAIL 57236
FAIL 57237
FAIL 57238
FAIL 57239
FAIL 57240
FAIL 57241
FAIL 57242
FAIL 57243
FAIL 57244
FAIL 57245
FAIL 57246
FAIL 57247
FAIL 57248
FAIL 57249
FAIL 57250
FAIL 57251
FAIL 57252
FAIL 57253
FAIL 57254
FAIL 57255
FAIL 57256
FAIL 57257
FAIL 57258
FAIL 57259
FAIL 57260
FAIL 57261
FAIL 57262
FAIL 57263
FAIL 57264
FAIL 57265
FAIL 57266
FAIL 57267
FAIL 57268
FAIL 57269
FAIL 57270
FAIL 57271
FAIL 57272
FAIL 57273
FAIL 57274
FAIL 57275
FAIL 57276
FAIL 57277
FAIL 57278
FAIL 57279
FAIL 57280
FAIL 57281
FAIL 57282
FAIL 57283
FAIL 57284
FAIL 57285
FAIL 57286
FAIL 57287
FAIL 57288
FAIL 57289
FAIL 57290
FAIL 57291
FAIL 57292
FAIL 57293
FAIL 57294
FAIL 57295
FAIL 57296
FAIL 57297
FAIL 57298
FAIL 57299
FAIL 57300
FAIL 57301
FAIL 57302
FAIL 57303
FAIL 57304
FAIL 57305
FAIL 57306
FAIL 57307
FAIL 57308
FAIL 57309
FAIL 57310
FAIL 57311
FAIL 57312
FAIL 57313
FAIL 57314
FAIL 57315
FAIL 57316
FAIL 57317
FAIL 57318
FAIL 57319
FAIL 57320
FAIL 57321
FAIL 57322
FAIL 57323
FAIL 57324
FAIL 57325
FAIL 57326
FAIL 57327
FAIL 57328
FAIL 57329
FAIL 57330
FAIL 57331
FAIL 57332
FAIL 57333
FAIL 57334
FAIL 57335
FAIL 57336
FAIL 57337
FAIL 57338
FAIL 57339
FAIL 57340
FAIL 57341
FAIL 57342
FAIL 57343
===*/

function test(s, verbose) {
    var t;
    var i;
    var tmp;

    try {
        tmp = [];

        t = s;

        for (i = 0; i < t.length; i++) {
            tmp.push(t.charCodeAt(i));
        }
        tmp.push('->');

        t = unescape(encodeURIComponent(t));

        for (i = 0; i < t.length; i++) {
            tmp.push(t.charCodeAt(i));
        }
        tmp.push('->');

        t = decodeURIComponent(escape(t));

        for (i = 0; i < t.length; i++) {
            tmp.push(t.charCodeAt(i));
        }

        if (t === s) {
            if (verbose) {
                print(tmp.join(' '));
            }
        } else {
            print('FAIL', tmp.join(' '));
        }
    } catch (e) {
        tmp = [];

        t = s;

        for (i = 0; i < t.length; i++) {
            tmp.push(t.charCodeAt(i));
        }

        print('FAIL', tmp.join(' '));
    }
}

try {
    var cp;
    test('abc\u0678\u1234', true);

    // comprehensive 16-bit test
    for (cp = 0; cp < 65536; cp++) {
        test(String.fromCharCode(cp), (cp < 256));
    }
} catch (e) {
    print(e);
}
